var express=require("express")//npm模块化
var bcrypt=require("bcryptjs")//npm对传输至数据库的信息加密
var fs=require("fs")
var session=require("express-session")//npm存储登录信息生成cookie
var mysql=require("mysql")//npm
var ejs=require("ejs")//npm前端页面相应信息的插入<%= %>
var url=require("url")//有关数据地址的使用,数据请求等
var querystring=require("querystring")//npm解析网站传递的数据通过?name=....传递
// var bodyParser = require('body-parser')//
// app.use(bodyParser.urlencoded({ extended: false }))

var app=express()  
const cors = require("cors"); //跨域
app.use(cors()); //使用cors中间件
// var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '5000mb'}));//图片传输设置最大值
app.use(bodyParser.urlencoded({limit: '5000mb', extended: true}));
app.use(express.urlencoded({extended:false}))//解析表单发送过来的数据
app.use(express.json())//req.body为空
var db=mysql.createConnection({
    host:'127.0.0.1',
    // host:'localhost',
    user:'root',
    password:'admin123',
    database:'wangzhan',
    dateStrings:true,
    
    multipleStatements: true
})
app.use(session({
    secret:"1111",//任意值，对session进行加密的
    resave:false,//固定
    saveUninitialized:true//固定
}))
//首页
app.get("/",function(req,res,next){
    var sql="select * from lunbo"
    db.query(sql,function(err,result){
      if(err)
      return res.send({"code":404})
      res.send(result)
    })
    
})
//推荐
app.get("/wen",function(req,res,next){
    var sql="select * from wen"
    db.query(sql,function(err,result){
      if(err)
      return res.send({"code":404})
      res.send(result)
    })
    
})
app.post("/wen",function(req,res,next){
  var limit=req.body.id
    var sql="select * from wen order by id desc limit ?"
    db.query(sql,limit,function(err,result){
      if(err)
      return res.send({"code":404})
      res.send(result)
    })
    
})
//登录
app.post('/id',function(req,res){
  var name=req.body.name
  var password=req.body.password
  var sql='select * from user where user=? and password=?'
  db.query(sql,[name,password],(err,result)=>{
    if(err){
      // console.log(name);
      return res.send('错误')
    }
      else{
        // console.log(name);
        res.send(result)
      }
      
  })
})
//文章详情
app.get("/xiangxi/:id",function(req,res,next){
    var id=req.params.id
    // console.log(req);
    var sql="select * from pinglun where id=? order by a desc;select * from wen where id=?"
    db.query(sql,[id,id],function(err,result){
      if(err)
      return res.send({"code":404})
      res.send(result)
    })
    
})
//提交评论
app.post("/pinglun/:id",function(req,res,next){
    // var student=req.params;//携带的参数
    var student=req.body.pinglun//提交的参数
    var data=req.body//提交的参数
    // console.log(student);
    // console.log(student);
    // console.log(req.body);
    // res.send(id)
    // console.log(req);
    // var sql = "select * from pinglun";
    var sql = "insert into pinglun set ?";
    db.query(sql,data,function(err,result){
      if(err)
      return res.send(err)
      res.send(result)
    })
    
})
//评论展示
app.get("/pinglun/:id",function(req,res,next){
  var id=req.params.id
  var sql='select pinglun from wen where id=?'
  db.query(sql,id,function(err,result){
    if(err){
      return res.send("err")
    }
    else{
      // res.send(result)
      var sum=result[0].pinglun
      // var sql=""
      sum++
      var sql1="update wen set pinglun=? where id=?"
      db.query(sql1,[sum,id],function(err,result1) {
        if(err)
        return res.send("错了")
      res.send("成功!")
      })
    }
  })
})
//浏览量
app.get('/kan/:id',function (req,res) {//kan加一
  // // console.log(req.params);
  // res.send(req.params)
  var id=req.params.id
    // console.log(req);
    var sql="select liulan from wen where id=? order by id desc"
    db.query(sql,id,function(err,result){
      if(err)
      return res.send({"code":404})
    else{
      // const acc={"liulan":10,"pinglun":0}
      // // res.send(acc['"pinglun"'])
      // res.send([1])

      var liulan=result[0]
      var kan=liulan.liulan
       kan++
      var sql1="update wen set liulan=? where id=?"
      db.query(sql1,[kan,id],function(err,result1) {
        if(err)
        return res.send("错了")
      res.send(result1)
      })
      // res.send([kan])
    }
      
    })
})
app.get('/wowen/:user',function(req,res){//搜索我的文章
  var user=req.params.user
  var sql="select * from wen where user=? order by id desc"
    db.query(sql,user,function(err,result){
      if(err)
      return res.send({"code":404})
      res.send(result)
    })
})
//提交文章
app.post('/tijiaowen',function(req,res){
  var data=req.body

  // console.log(data);
  var sql='insert into wen set ?'
  db.query(sql,data,function(err,result){
    if(err){
      res.send("提交错误")
    }
    else{
      res.send("正确")
    }
  })
})
app.get("/wode/:id",function(req,res){//通过id获取我的信息[我的]
  // var id=110101011
  // var user=JSON.parse(sessionStorage.getItem("user"))
  var id=req.params.id;
  // var sql="select * from user"
  var sql="select * from user where id=?"
  db.query(sql,id,(err,result)=>{
    if(err){
      return res.send(err)
    }
    else{
      res.send(result)
    }
  })
})
//个人信息改变
app.post('/gaiuser/:id',function(req,res){
  var id=req.params.id;
  var date=req.body
  var sql="update user set ? where id=?"
  db.query(sql,[date,id],(err,result)=>{
    if(err){
      // console.log(date);
      // console.log(id);
      return res.send(err)
    }
    
  else{
    // console.log("成功!");
    // res.send("成功")
    var sql1='update wen set ? where idd=?'
    var gaiwen={
      tou:date.tou,
      user:date.user
    }
    db.query(sql1,[gaiwen,id],(err,result)=>{
      if(err)
      return res.send("失败")
    else{
      // console.log(result);
      // return result
      var sql1='update pinglun set ? where idd=?'
    var gaiwen={
      img:date.tou,
      name:date.user
    }
    db.query(sql1,[gaiwen,id],(err,result)=>{
      if(err)
      return res.send("失败")
    else{
      // console.log(result);
      return result
    }
    
    })

    }
    
    })
    //-------------------改评论
    

  }
  })

  // var sql1='update wen set user=?,tou=? where id=?'
  // db.query(sql1,[date.])
})
app.post("/denglutiao",(req,res)=>{
  var user=req.body.user
  var password=req.body.password
  // var id=req.body.id
  var sql='select * from user where user=? and password=?'
  db.query(sql,[user,password],(err,result)=>{
    if(err)
    return res.send(err)
  // console.log(result);
     res.send(result)
  })
})
//注册
app.post('/zhuce',function(req,res){
  var date=req.body
  // var sql="select * from user"
  var sql="insert into user set ?"
  db.query(sql,date,(err,result)=>{
    if(err)
    return res.send("失败")
  return res.send("成功")
  })
})
//模糊查询文章
app.post("/search",function(req,res){
  var guanjian=req.body.guanjian
  // var sql="select * from wen where match(title) against(? in boolean mode)"
  // var sql='select * from wen where title like'+'"%'+3+'%"'
  var sql='SELECT * FROM wen WHERE title LIKE ?'
  var search=`%${guanjian}%`
  db.query(sql,search,(err,result)=>{
    if(err)
      return res.send(err)
      
      // else{
       return res.send(result)
      // }
    
  })
  //-----------
  
})
//历史记录
app.get('/lishi/:id',(req,res)=>{
  var id=req.params.id
  var sql='select * from lishi where idd=?'
  db.query(sql,id,(err,result)=>{
    if(err){
      return res.send(err)
    }
    else{
      return res.send(result)
    }
  })
})
//添加历史记录
app.post('/jialishi',(req,res)=>{
  var lishi=req.body
  var sql='insert into lishi set ?'
  db.query(sql,lishi,function(err,result){
    if(err)
    return res.send("失败")
    return res.send("成功")
  })
})
//删除单个历史记录
app.get("/del/:id",(req,res)=>{
  var id=req.params.id
  var sql='delete from lishi where id=?'
  db.query(sql,id,(err,result)=>{
    if(err)
    return res.send(err)
    return res.send("成功")
  })
})
//一次性删除所有历史记录
app.get("/delall/:idd",(req,res)=>{
  var idd=req.params.idd
  var sql='delete from lishi where idd=?'
  db.query(sql,idd,(err,result)=>{
    if(err)
    return res.send(err)
    return res.send("成功")
  })
})
//排行榜
app.get('/rebang',function(req,res){
  var sql='select * from wen order by liulan desc limit 10'
  db.query(sql,(err,result)=>{
    if(err)
    return res.send(err)
    return res.send(result)
  })
})
app.get('/delping/:a',function(req,res){
  var a=req.params.a
  var sql='delete from pinglun where a=?'
  db.query(sql,a,(err,result)=>{
      if(err)
  return res.send("失败")
return res.send('成功')
  })

})
//删除个人文章
app.get('/delwen/:id',function(req,res){
  var id=req.params.id
  var sql='delete from wen where id=?'
  db.query(sql,id,(err,result)=>{
      if(err)
  return res.send("失败")
// return res.send('成功')
else{
  var sql1='delete from pinglun where id=?'
  db.query(sql1,id,(err1,result1)=>{
    if(err1)
    return res.send("删评失败")
  return res.send("成功")
  })
}
  })

})
app.post('/sum',(req,res)=>{
  var date=req.body.date
  var idd=req.body.idd
  var sum=[]
  date.forEach((item,index)=>{
    var sql='SELECT * FROM wen WHERE date LIKE ? and idd=?'
  var search=`%${item}%`
  db.query(sql,[search,idd],(err,result)=>{
    if(err){
      return res.send('失败')
    }
    else{
      sum.push(result.length)
      if(index===date.length-1){
        // console.log(index);
      // console.log(sum);
      return res.send(sum)
      }
    }
    
  })
  })
  
})
app.get('/shi',function(req,res){
  var sql='select shu from shi'
  db.query(sql,(err,result)=>{
      if(err)
  return res.send("失败")
else{
  return res.send(result)
}
  })

})
app.listen("5006",function(){
    console.log("http://127.0.0.1:5006");
})